package com.sws.attendance.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sws.common.annotation.Excel;
import com.sws.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 学生签到记录对象 stu_attendance
 * 
 * @author cx
 * @date 2025-06-16
 */
@ApiModel(description = "学生签到记录对象")
public class StuAttendance extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 节点ID
     * 主键ID
     * 序号
     * 主键
     * 物理主键
     */
    @ApiModelProperty(value = "主键ID", example = "1")
    private Long id;

    /**
     * 设备端人员ID
     * 人员ID
     * 学生pid （通过pid联查学生姓名、班级、学号）
     */
    @ApiModelProperty(value = "设备端人员ID", example = "pid123")
    private String pid;

    /**
     * 签到日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签到日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "签到日期", example = "2023-10-01")
    private Date recordDate;

    /**
     * 早上签到
     */
    @Excel(name = "早上签到")
    @ApiModelProperty(value = "早上签到状态", example = "1")
    private Integer morningSignIn;

    /**
     * 早上签到时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "早上签到时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "早上签到时间", example = "2023-10-01 08:00:00")
    private Date morningSignInTime;

    /**
     * 中午签退
     */
    @Excel(name = "中午签退")
    @ApiModelProperty(value = "中午签退状态", example = "1")
    private Integer noonSignOut;

    /**
     * 中午签退时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "中午签退时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "中午签退时间", example = "2023-10-01 12:00:00")
    private Date noonSignOutTime;

    /**
     * 下午签到
     */
    @Excel(name = "下午签到")
    @ApiModelProperty(value = "下午签到状态", example = "1")
    private Integer afternoonSignIn;

    /**
     * 下午签到时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "下午签到时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "下午签到时间", example = "2023-10-01 14:00:00")
    private Date afternoonSignInTime;

    /**
     * 晚上签退
     */
    @Excel(name = "晚上签退")
    @ApiModelProperty(value = "晚上签退状态", example = "1")
    private Integer eveningSignOut;

    /**
     * 晚上签退时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "晚上签退时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "晚上签退时间", example = "2023-10-01 18:00:00")
    private Date eveningSignOutTime;

    /**
     * 设备部署位置
     * 抓拍位置
     * 签到位置
     */
    @Excel(name = "签到位置")
    @ApiModelProperty(value = "签到位置", example = "教学楼A区")
    private String location;

    /**
     * 设备序列号(逻辑主键)
     * 设备序列号
     */
    @Excel(name = "设备序列号")
    @ApiModelProperty(value = "设备序列号", example = "SN123456")
    private String sn;

    /**
     * 删除标志（0代表存在 2代表删除）
     * 删除标志(0:正常 1:删除)
     * 删除标志
     * 删除标志(0存在，1删除)
     */
    @ApiModelProperty(value = "删除标志", example = "0")
    private Integer delFlag;

    /**
     * 项目名称
     * 姓名
     * 路由名字
     * 姓名，比对机专用。
     */
    @Excel(name = "姓名")
    @ApiModelProperty(value = "姓名", example = "张三")
    private String name;

    /**
     *
     */
    @Excel(name = "班级")
    @ApiModelProperty(value = "班级", example = "软件工程1班")
    private String classes;

    /**
     *
     */
    @Excel(name = "学号")
    @ApiModelProperty(value = "学号", example = "2023001")
    private String studentId;

    /**
     * 人员照片
     */
    @Excel(name = "照片")
    @ApiModelProperty(value = "人员照片URL", example = "http://example.com/photo.jpg")
    private String photo;

    /**
     *
     */
    public String getName() {
        return name;
    }

    /**
     * @param name 项目名称
     * @param name 姓名
     * @param name 路由名字
     * @param name 姓名，比对机专用。
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     *
     */
    public String getClasses() {
        return classes;
    }

    /**
     *
     */
    public void setClasses(String classes) {
        this.classes = classes;
    }

    /**
     *
     */
    public String getStudentId() {
        return studentId;
    }

    /**
     *
     */
    public void setStudentId(String studentId) {
        this.studentId = studentId;
    }

    /**
     *
     */
    public String getPhoto() {
        return photo;
    }

    /**
     * @param photo 人员照片
     */
    public void setPhoto(String photo) {
        this.photo = photo;
    }

    /**
     * @param id 节点ID
     * @param id 主键ID
     * @param id 序号
     * @param id 主键
     * @param id 物理主键
     */
    public void setId(Long id)
    {
        this.id = id;
    }

    /**
     *
     */
    public Long getId()
    {
        return id;
    }

    /**
     * @param pid 设备端人员ID
     * @param pid 人员ID
     * @param pid 学生pid （通过pid联查学生姓名、班级、学号）
     */
    public void setPid(String pid)
    {
        this.pid = pid;
    }

    /**
     *
     */
    public String getPid()
    {
        return pid;
    }

    /**
     * @param recordDate 签到日期
     */
    public void setRecordDate(Date recordDate)
    {
        this.recordDate = recordDate;
    }

    /**
     *
     */
    public Date getRecordDate()
    {
        return recordDate;
    }

    /**
     * @param morningSignIn 早上签到
     */
    public void setMorningSignIn(Integer morningSignIn)
    {
        this.morningSignIn = morningSignIn;
    }

    /**
     *
     */
    public Integer getMorningSignIn()
    {
        return morningSignIn;
    }

    /**
     * @param morningSignInTime 早上签到时间
     */
    public void setMorningSignInTime(Date morningSignInTime)
    {
        this.morningSignInTime = morningSignInTime;
    }

    /**
     *
     */
    public Date getMorningSignInTime()
    {
        return morningSignInTime;
    }

    /**
     * @param noonSignOut 中午签退
     */
    public void setNoonSignOut(Integer noonSignOut)
    {
        this.noonSignOut = noonSignOut;
    }

    /**
     *
     */
    public Integer getNoonSignOut()
    {
        return noonSignOut;
    }

    /**
     * @param noonSignOutTime 中午签退时间
     */
    public void setNoonSignOutTime(Date noonSignOutTime)
    {
        this.noonSignOutTime = noonSignOutTime;
    }

    /**
     *
     */
    public Date getNoonSignOutTime()
    {
        return noonSignOutTime;
    }

    /**
     * @param afternoonSignIn 下午签到
     */
    public void setAfternoonSignIn(Integer afternoonSignIn)
    {
        this.afternoonSignIn = afternoonSignIn;
    }

    /**
     *
     */
    public Integer getAfternoonSignIn()
    {
        return afternoonSignIn;
    }

    /**
     * @param afternoonSignInTime 下午签到时间
     */
    public void setAfternoonSignInTime(Date afternoonSignInTime)
    {
        this.afternoonSignInTime = afternoonSignInTime;
    }

    /**
     *
     */
    public Date getAfternoonSignInTime()
    {
        return afternoonSignInTime;
    }

    /**
     * @param eveningSignOut 晚上签退
     */
    public void setEveningSignOut(Integer eveningSignOut)
    {
        this.eveningSignOut = eveningSignOut;
    }

    /**
     *
     */
    public Integer getEveningSignOut()
    {
        return eveningSignOut;
    }

    /**
     * @param eveningSignOutTime 晚上签退时间
     */
    public void setEveningSignOutTime(Date eveningSignOutTime)
    {
        this.eveningSignOutTime = eveningSignOutTime;
    }

    /**
     *
     */
    public Date getEveningSignOutTime()
    {
        return eveningSignOutTime;
    }

    /**
     * @param location 设备部署位置
     * @param location 抓拍位置
     * @param location 签到位置
     */
    public void setLocation(String location)
    {
        this.location = location;
    }

    /**
     *
     */
    public String getLocation()
    {
        return location;
    }

    /**
     * @param sn 设备序列号(逻辑主键)
     * @param sn 设备序列号
     */
    public void setSn(String sn)
    {
        this.sn = sn;
    }

    /**
     *
     */
    public String getSn()
    {
        return sn;
    }

    /**
     * @param delFlag 删除标志（0代表存在 2代表删除）
     * @param delFlag 删除标志(0:正常 1:删除)
     * @param delFlag 删除标志
     * @param delFlag 删除标志(0存在，1删除)
     */
    public void setDelFlag(Integer delFlag)
    {
        this.delFlag = delFlag;
    }

    /**
     *
     */
    public Integer getDelFlag()
    {
        return delFlag;
    }


    /**
     *
     */
    @Override
    public String toString() {
        return "StuAttendance{" +
                "id=" + id +
                ", pid='" + pid + '\'' +
                ", recordDate=" + recordDate +
                ", morningSignIn=" + morningSignIn +
                ", morningSignInTime=" + morningSignInTime +
                ", noonSignOut=" + noonSignOut +
                ", noonSignOutTime=" + noonSignOutTime +
                ", afternoonSignIn=" + afternoonSignIn +
                ", afternoonSignInTime=" + afternoonSignInTime +
                ", eveningSignOut=" + eveningSignOut +
                ", eveningSignOutTime=" + eveningSignOutTime +
                ", location='" + location + '\'' +
                ", sn='" + sn + '\'' +
                ", delFlag=" + delFlag +
                ", name='" + name + '\'' +
                ", classes='" + classes + '\'' +
                ", studentId='" + studentId + '\'' +
                ", photo='" + photo + '\'' +
                '}';
    }
}



/* {
 "type":11,
 "pid":"040221",
 "time":1750032603,
 "sn":"PFM1254O1009701",
 "name":"邓浩威",
 "age":20,
 "gender":1,
 "work_id":"1001",
 "phone":"13642728885",
 "department":"部门名称",
 "otherInfo":"(null)",
 "category":1,
 "score":90,
 "helmet":0,
 "smoke":0,
 "handed":0,
 "feature":[]
 }*/
